package com.hmall.common.config;

import com.hmall.common.utils.RabbitMqHelper;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/*加载外部依赖的配置类
Spring Boot 启动时，@EnableAutoConfiguration
注解会触发扫描所有依赖的 META-INF/spring.factories 文件，加载其中声明的自动配置类
解决扫描范围限制：
@ComponentScan
只能扫描项目包内的 Bean，而 spring.factories 可将第三方库或子模块的配置类注册到 Spring 容器。
条件化装配
自动配置类通常配合 @ConditionalOnClass、@ConditionalOnProperty 等注解，
实现按需加载（例如：仅当类路径存在 DataSource 时才配置数据库连接池）。*/
@Configuration


public class MqConfig {
    @Bean
    public Jackson2JsonMessageConverter messageConverter() {
        return new Jackson2JsonMessageConverter();
    }
    @Bean
    public RabbitMqHelper rabbitMqHelper(RabbitTemplate rabbitTemplate){
        return new RabbitMqHelper(rabbitTemplate);
    }
}
